// 路由文件中，要有四个步骤
// 1、加载express
// 2、创建路由对象
// 3、把接口挂在到路由对象上
// 4、导出路由对象

const path = require('path');
const db = require(path.join(__dirname, '../utils', 'db'));
const utility = require('utility');
const express = require('express');
const router = express.Router();

// ------------------------------------- 写接口
// ----------------- 获取用户信息接口
router.get('/userinfo', async (req, res) => {
    // 当用户请求这个接口的时候，作为服务器，该做什么
    let r = await db('select id,username,nickname,email,user_pic from user where id = ?', req.user.id);
    if (r && r.length > 0) {
        res.send({
            status: 0,
            message: '获取用户基本信息成功',
            data: r[0]
        })
    } else {
        res.send({
            status: 1,
            message: '获取用户信息失败'
        })
    }
})

// ----------------- 重置密码接口
router.post('/updatepwd', async (req, res) => {
    // 获取原密码和新密码
    let oldPwd = utility.md5(req.body.oldPwd);
    let newPwd = utility.md5(req.body.newPwd);
    // 1.判断原密码和新密码是否一致
    if (oldPwd == newPwd) {
        return res.send({
            status: 1,
            message: '新旧密码不能一致'
        })
    }
    // 2.先检查原密码是否正确
    let r1 = await db('select * from user where password=? and id=?', [oldPwd, req.user.id])
    if (r1.length === 0 || r1 === undefined) {
        return res.send({
            status: 1,
            message: '原密码错误'
        })
    }
    // 3.更新密码
    let r2 = await db('update user set password = ? where id = ?', [newPwd, req.user.id]);
    if (r2 && r2.affectedRows > 0) {
        res.send({
            status: 0,
            message: '更新密码成功'
        })
    } else {
        res.send({
            status: 1,
            message: '更新密码失败'
        })
    }

})

// ----------------- 更换头像接口
router.post('/update/avatar', async (req, res) => {
    let r = await db('update user set user_pic=? where id=?', [req.body.avatar, req.user.id]);
    if (r && r.affectedRows > 0) {
        res.send({
            status: 0,
            message: '更换头像成功'
        })
    } else {
        res.send({
            status: 1,
            message: '更换头像失败'
        })
    }
})

// ----------------- 更新用户信息接口
router.post('/userinfo', async (req, res) => {
    // 判断下提交的id和当前用户的id是否一致
    if (req.body.id != req.user.id) {
        return res.send({
            status: 1,
            message: 'id错误，请重新登录'
        })
    }
    let r = await db('update user set ? where id=?', [req.body, req.user.id]);
    if (r && r.affectedRows > 0) {
        res.send({
            status: 0,
            message: '更新用户信息成功'
        })
    } else {
        res.send({
            status: 1,
            message: '更新用户信息失败'
        })
    }
})

module.exports = router;